python中的eval()函数

您所在的位置:网站首页 vf val函数 python中的eval()函数

python中的eval()函数

#python中的eval()函数| 来源: 网络整理| 查看: 265

eval()函数

作用:将字符串转为python语句(就是去掉“”)然后执行转化后的语句

例子:

a = 1 b = 2 c = eval("a+b") print(c) #输出为3

简单使用:

使用input()函数输入,数据会以字符串的形式返回。如果我们输入的是需要参与计算的数字,则还需要转换类型,有了eval()函数,我们可以这样做:

eval(input("请输入数字"))

进阶:

转自python eval() - 大大的橙子 - 博客园

eval()的函数定义为:eval(source,globals = None,locals = None)

官方文档中的解释是,将字符串str当成有效的表达式来求值并返回计算结果。globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。

python是用命名空间来记录变量的轨迹的,命名空间是一个dictionary,键是变量名,值是变量值。

当一行代码要使用变量 x 的值时,Python 会到所有可用的名字空间去查找变量,按照如下顺序:

1)局部名字空间 - 特指当前函数或类的方法。如果函数定义了一个局部变量 x, 或一个参数 x,Python 将使用它,然后停止搜索。

2)全局名字空间 - 特指当前的模块。如果模块定义了一个名为 x 的变量,函数或类,Python 将使用它然后停止搜索。

3)内置名字空间 - 对每个模块都是全局的。作为最后的尝试,Python 将假设 x 是内置函数或变量。

python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。我们可以用print (locals())来查看该函数体内的所有变量名和变量值。

eval()使用原因:

1)在编译语言里要动态地产生代码,基本上是不可能的,但动态语言是可以,意味着软件已经部署到服务器上了,但只要作很少的更改,只好直接修改这部分的代码,就可立即实现变化,不用整个软件重新加载。

2)在machin learning里根据用户使用这个软件频率,以及方式,可动态地修改代码,适应用户的变化。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3